<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // 浅复制
  // 引用类型 直接赋值的操作叫做浅复制  => 两个变量引用同一片内存空间(只要有一个改动,另一个也会改变)  
  // 如何判断   === 
  // var arr = [1,2,3];
  // var brr = arr;
  // brr.push(4);
  // arr.push(5);
  // console.log(arr,brr);
  // console.log(arr === brr);


  // 深复制
  // 在不影响原数组的情况下 得到一个与原数组元素相同的新数组
  // 1. 新建数组 遍历原数组 将原数组中的每一个元素 放到新数组中 (针对值类型)
  // 2. 借助数组的拓展方法  (针对值类型)

  var arr = [2, 8, 4, 6, 5, 7, 9, 3, 1];

  // 1. 新建数组 遍历原数组 将原数组中的每一个元素 放到新数组中
  // var brr = [];
  // for(var val of arr){
  //     brr.push(val);
  // }
  // for(var i=0;i<arr.length;i++){
  //     var item = arr[i];
  //     brr.push(item);
  // }

  // 2. 借助数组的拓展方法
  var brr = arr.slice(); // 0,length
  var brr = arr.concat();
  var brr = arr.map(function (item) {
    return item;
  })







</script>

</html>